package com.ruoyi.manage.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.manage.domain.Staff;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;

/**
 * 员工Mapper接口
 * 
 * @author cf
 * @date 2025-05-28
 */
public interface StaffMapper 
{
    /**
     * 查询员工
     * 
     * @param id 员工主键
     * @return 员工
     */
    public Staff selectStaffById(Long id);

    /**
     * 查询员工列表
     * 
     * @param staff 员工
     * @return 员工集合
     */
    public List<Staff> selectStaffList(Staff staff);

    /**
     * 新增员工
     * 
     * @param staff 员工
     * @return 结果
     */
    public int insertStaff(Staff staff);

    /**
     * 修改员工
     * 
     * @param staff 员工
     * @return 结果
     */
    public int updateStaff(Staff staff);

    /**
     * 删除员工
     * 
     * @param id 员工主键
     * @return 结果
     */
    public int deleteStaffById(Long id);

    /**
     * 批量删除员工
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStaffByIds(Long[] ids);

    /**
     * 查询员工数量
     *
     * @return 数量
     */
    public int countNormalStatus();

    int countNormalStatusError();

    @MapKey("deptName")
    List<Map<String, Object>> countDeptEmployee();

    @Select("select id from sys_staff")
    public List<Long> getStaffIds();
}
